<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>属性的最基本的操作</title>
</head>
<body>
    
</body>
<script>
    /*
        在对象中 对象的成员我们成为属性
    */
    let obj = {
        name:'jimmy',
        'my age':18
    }
    // 访问对象的属性由两种方法 一种是使用.  一种是使用[]
        // 一般情况下我们都是使用.来访问的  因为.比较简单  且轻松  但是也有特殊情况
    console.log(obj.name)  //jimmy
    // console.log(obj.my age)  //报错
    console.log(obj['my age'])   //18  //这个就是特殊情况  当属性名是一个含有特殊字符的时候 我们就要使用[]的形式来访问了

    /*
        对象也是可以使用数组的for in 和for of循环的
            当使用forin循环的出来的key是每一条数据的属性名 
                这时候是不能够使用.来访问属性值的   这时候只能使用[]来访问属性值 
                    我们可以简单的理解成这个是数组的方法  数组的表达方式就是[]  所以在这里我们使用的是[]  而不是.
    */

    for (const key in obj) {
        console.log(key) // name  my age
        console.log(obj.key)  //undefined
        console.log(obj[key])  // jimmy  18
    }

    /*
        我们也可以在对象外自己手动的增加和删除属性 
            增加属性只要 obj.girlfrend = 'xuexue' 像这样赋值即可

            删除属性  使用delete关键子  加上对象名.属性名   delete obj.name
    */

    obj.girlfrend = 'xuexue'
    console.log(obj)  //{name: "jimmy", my age: 18, girlfrend: "xuexue"}
    delete obj.name
    console.log(obj)  //{my age: 18, girlfrend: "xuexue"}
</script>
</html>